package cn.iocoder.yudao.module.eval.controller.admin.major.vo;

import cn.idev.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

/**
 * 管理后台 - 专业管理导入 Excel VO
 * 
 * 注意：Excel表头必须与@ExcelProperty注解中的值完全一致，包括空格和特殊字符
 * 或者使用@ExcelProperty(index = n)通过列位置映射
 * 
 * 数据库字段映射关系：
 * code - 专业编码
 * level - 等级
 * name - 专业名称
 * training_objective - 培养目标
 * study_period - 学习年限
 * vocational_competence - 职业能力
 * corresponding_occupation - 对应或相关职业（工种）
 * qualification_skill_level - 职业资格(职业技能等级)
 * curriculum_content - 教学内容与要求
 * upper_level_code - 对应上一级专业编码
 * next_level_code - 对应下一级专业编码
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class MajorImportExcelVO {

    @Schema(description = "序号")
    @ExcelProperty(index = 0)
    private String number;

    @Schema(description = "大类编码")
    @ExcelProperty(index = 1)
    private String categoryCode;

    @Schema(description = "大类名称")
    @ExcelProperty(index = 2)
    private String categoryName;

    @Schema(description = "专业编码", required = true)
    @ExcelProperty(index = 3)
    private String code;

    @Schema(description = "等级", required = true)
    @ExcelProperty(index = 4)
    private String skillLevel;

    @Schema(description = "专业名称", required = true)
    @ExcelProperty(index = 5)
    private String subCategoryName;

    @Schema(description = "培养目标")
    @ExcelProperty(index = 6)
    private String trainingGoal;

    @Schema(description = "学习年限")
    @ExcelProperty(index = 7)
    private String studyYear;

    @Schema(description = "职业能力")
    @ExcelProperty(index = 8)
    private String occupationalAbility;

    @Schema(description = "对应或相关职业（工种）")
    @ExcelProperty(index = 9)
    private String correspondingOccupation;

    @Schema(description = "职业资格（职业技能等级）")
    @ExcelProperty(index = 10)
    private String vocationalQualification;

    @Schema(description = "专业主要教学内容")
    @ExcelProperty(index = 11)
    private String majorTeachingContent;

    @Schema(description = "对应上一级专业编码")
    @ExcelProperty(index = 12)
    private String upperMajorCode;

    @Schema(description = "对应下一级专业编码")
    @ExcelProperty(index = 13)
    private String nextLevelCode;

    @Override
    public String toString() {
        return "MajorImportExcelVO{" +
                "number='" + number + '\'' +
                ", categoryCode='" + categoryCode + '\'' +
                ", categoryName='" + categoryName + '\'' +
                ", code='" + code + '\'' +
                ", skillLevel='" + skillLevel + '\'' +
                ", subCategoryName='" + subCategoryName + '\'' +
                ", trainingGoal='" + trainingGoal + '\'' +
                ", studyYear='" + studyYear + '\'' +
                ", occupationalAbility='" + occupationalAbility + '\'' +
                ", correspondingOccupation='" + correspondingOccupation + '\'' +
                ", vocationalQualification='" + vocationalQualification + '\'' +
                ", majorTeachingContent='" + majorTeachingContent + '\'' +
                ", upperMajorCode='" + upperMajorCode + '\'' +
                ", nextLevelCode='" + nextLevelCode + '\'' +
                '}';
    }
}